Skip to content

messages: add forward compatibility for gossiped messages - #91

Open
rfratto wants to merge 1 commit into
mainfrom
message-forward-compat
Open

messages: add forward compatibility for gossiped messages#91
rfratto wants to merge 1 commit into
mainfrom
message-forward-compat

Conversation

@rfratto

@rfratto rfratto commented Jun 16, 2025

Copy link
Copy Markdown
Member

Previously, unknown fields received while gossiping would be silently dropped. This can happen if an older version of ckit receives a message from a newer version of ckit (where a new field has been added).

This can lead to temporary convergence issues during a rollout: messages will continue to be refuted until all nodes are running the same version.

While the State message has not changed since the original version of ckit, not having any support for forwards compatibility prevents us from being able to cleanly extend messages with new fields (see #89).

This commit enforces all messages to handle and propagate unknown fields to permit forwards compatibility.

Unfortunately, the codec package requires the type being decoded into to explicitly handle unrecognized fields. This means that each message type must handle forwards compatibility, with no easy way to handle it at the package level generically.

Closes #90.

Previously, unknown fields received while gossiping would be silently
dropped. This can happen if an older version of ckit receives a message
from a newer version of ckit (where a new field has been added).

This can lead to temporary convergence issues during a rollout: messages
will continue to be refuted until all nodes are running the same
version.

While the State message has not changed since the original version of
ckit, not having any support for forwards compatibility prevents us from
being able to cleanly extend messages with new fields (see #89).

This commit enforces all messages to handle and propagate unknown fields
to permit forwards compatibility.

Closes #90.
@rfratto
rfratto requested a review from tpaschalis as a code owner June 16, 2025 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add forwards compatibility for changes to broadcast messages

1 participant